package com.qf.service;

import com.qf.pojo.resp.BaseResp;
import com.qf.pojo.vo.Orders;
import org.springframework.web.bind.annotation.RequestBody;

import java.text.ParseException;
import java.util.Map;

/**
 * @author guoxu
 * @create 2021/3/11 17:19
 */
public interface OrdersService {
    /***
     * Desc: 查自己所有的订单
     * @param uid 用户的id
     * @return BaseResp
     * @author 郭旭
     * @date 2021/3/11 17:20
     */
    BaseResp findAll(Integer uid);

    /***
     * Desc:
     * @param uid
     * @param state
     * @return  BaserResp
     * @author  郭旭
     * @date 2021/3/11 17:29
     */
    BaseResp findByUidAndState(Integer uid,String state);

    /***
     * Desc: 查某一条具体的订单的方法
     * @param map 订单的id
     * @return BaseResp
     * @author  郭旭
     * @date 2021/3/11 20:10
     */
    BaseResp findById(Map map);

    /***
     * Desc: 开始配送的id，修改订单状态，并且以hash方式存入redis
     * @param map 商家的id，订单的id，起点位置
     * @return BaseResp
     * @author 郭旭
     * @date 2021/3/12 11:33
     */
    BaseResp distribution( Map map);

    /***
     * Desc: 新增订单
     * @param orders 封装的订单信息
     * @return BaseResp
     * @author 郭旭
     * @date 2021/3/12 15:30
     * @throws ParseException 抛出异常继续执行
     */
    BaseResp add( Orders orders) throws ParseException;

    /***
     * Desc: 签收的方法
     * @param orders 封装的订单信息
     * @return  BaseResp
     * @author 郭旭
     * @date 2021/3/12 15:41
     * @throws ParseException 抛出异常程序继续执行
     */
    BaseResp sign( Orders orders) throws ParseException;

    BaseResp update(Orders orders);

    BaseResp findByOnumber(String oNumber);

    /***
     * Desc: 商家查所有
     * @param bid 商家id
     * @return BaseResp
     * @author 郭旭
     * @date 2021/3/15 15:46
     */
    BaseResp findByBid(Integer bid);

    /***
     * Desc: 商家查状态id
     * @param state 状态
     * @param  bid 商家地址
     * @return  BaseResp
     * @author 郭旭
     * @date 2021/3/15 15:48
     */
    BaseResp findByBidAndState(Integer bid , String state);

    /**
     * Desc: 修改
     * @param orders 订单信息
     * @return BaseResp
     * @author  郭旭
     * @date 2021/3/15 16:12
     */
    BaseResp updateEvaluation(Orders orders);

    /***
     * Desc: 评价方法
     * @param uid 用户id
     * @param evaluation 评价
     *  @param  state   状态
     * @return  baseresp
     * @author 郭旭
     * @date 2021/3/15 16:25
     */
    BaseResp findByUidAndEvaluation(Integer uid,String evaluation,String state);

    /***
     * Desc: 商家查评论
     * @param  bid  商家id
     * @param  bname  商家名称
     * @return BaseResp
     * @author 郭旭
     * @date 2021/3/16 20:42
     */
    BaseResp findByBidAndNum(String bid ,String bname);


}
